﻿using Abp.AutoMapper;
using AVIS.OutBound.CarGroups.Dto;
using AVIS.OutBound.Stores.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AVIS.OutBound.Orders.Dto
{
    /// <summary>
    /// 订单信息
    /// </summary>
    [AutoMapFrom(typeof(Order))]
    public class OrderOutput
    {
        #region 订单基本信息
        /// <summary>
        /// 订单Id
        /// </summary>
        public string OrderId { get; set; }

        /// <summary>
        /// 订单号，由Wizard接口返回（如：37378367CN5） ReservationNumber
        /// </summary>
        public string OrderNo { get; set; }

        /// <summary>
        /// 订单总金额
        /// </summary>
        public double Amount { get; set; }

        /// <summary>
        /// 货币单位
        /// </summary>
        public string CurrencyCode { get; set; }

        /// <summary>
        /// 付款类型 1:到付 2:预付
        /// </summary>
        public string PayType { get; set; }

        #endregion

        #region 取还车信息

        /// <summary>
        /// 取车时间
        /// </summary>
        public DateTime PickupDateTime { get; set; }

        /// <summary>
        /// 取车门店编号
        /// </summary>
        public string PickUpStoreCode { get; set; }

        /// <summary>
        /// 取车门店
        /// </summary>
        public StoreDto PickUpStore { get; set; }

        /// <summary>
        /// 取车城市编号
        /// </summary>
        public string PickUpCityCode { get; set; }

        ///// <summary>
        ///// 取车城市名称
        ///// </summary>
        //public string PickUpCityName { get; set; }

        /// <summary>
        /// 取车的区域编号
        /// </summary>
        public string PickUpRegionCode { get; set; }

        /// <summary>
        /// 还车时间
        /// </summary>
        public DateTime ReturnDateTime { get; set; }

        /// <summary>
        /// 还车门店编号
        /// </summary>
        public string ReturnStoreCode { get; set; }

        /// <summary>
        /// 还车门店
        /// </summary>
        public StoreDto ReturnStore { get; set; }

        /// <summary>
        /// 还车城市编号
        /// </summary>
        public string ReturnCityCode { get; set; }

        ///// <summary>
        ///// 还车城市名称
        ///// </summary>
        //public string ReturnCityName { get; set; }

        /// <summary>
        /// 还车的区域编号
        /// </summary>
        public string ReturnRegionCode { get; set; }

        /// <summary>
        /// 租期
        /// </summary>
        public int RentalLength { get; set; }

        /// <summary>
        /// 租期单位（一般为天）
        /// </summary>
        public string RentalUnit { get; set; }
        #endregion

        #region 优惠及协议信息

        /// <summary>
        /// Avis全球折扣号
        /// </summary>
        public string AWD { get; set; }

        ///<summary>
        ///会员卡号
        ///</summary>
        public string WizardNum { get; set; }

        ///<summary>
        ///优惠券号
        ///</summary>
        public string CouponNum { get; set; }

        ///<summary>
        ///协议号
        ///</summary>
        public string IATA { get; set; }

        /// <summary>
        /// 协议类型
        /// </summary>
        public int IATAType { get; set; }

        /// <summary>
        /// 优惠券减免金额
        /// </summary>
        public double CouponDiscountAmount { get; set; }

        /// <summary>
        /// 优惠券减免金额的币种
        /// </summary>
        public string CouponDiscountCurrencyCode { get; set; }
        #endregion

        #region 套餐及车组信息
        /// <summary>
        /// 套餐价格代码
        /// </summary>
        public string RateCode { get; set; }

        /// <summary>
        /// 预订车组的唯一码
        /// </summary>
        public string SIPPCode { get; set; }

        /// <summary>
        /// 选中的车组信息
        /// </summary>
        public CarGroupDto CarGroup { get; set; }

        /// <summary>
        /// 套餐名称
        /// </summary>
        public string RateName { get; set; }

        /// <summary>
        /// 套餐内容
        /// </summary>
        public List<string> RateContents { get; set; }

        /// <summary>
        /// 用户选择的增值服务数据（结构：类型 + 数量，多个用“;”隔开）
        /// </summary>
        public string EquipList { get; set; }

        #endregion

        #region 客户资料及航班信息

        /// <summary>
        /// 客户的姓
        /// </summary>
        public string Surname { get; set; }

        /// <summary>
        /// 客户的名
        /// </summary>
        public string Firstname { get; set; }

        /// <summary>
        /// 客户地址
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// 客户的邮政编码
        /// </summary>
        public string Postcode { get; set; }

        /// <summary>
        /// 客户所在城市
        /// </summary>
        public string CustomerCity { get; set; }

        /// <summary>
        /// 客户所在的国家名称
        /// </summary>
        public string CountryName { get; set; }

        /// <summary>
        /// 客户所在的国家编号
        /// </summary>
        public string CountryCode { get; set; }

        /// <summary>
        /// 客户的电话号码
        /// </summary>
        public string Telephone { get; set; }

        /// <summary>
        /// 客户的电子邮箱
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// 常旅客协议名称
        /// </summary>
        public string FTNProgramme { get; set; }

        /// <summary>
        /// 常旅客号码
        /// </summary>
        public string FTNNumber { get; set; }

        /// <summary>
        /// 航班号
        /// </summary>
        public string FlightNumber { get; set; }

        #endregion
    }
}
